package br.academia.dominio;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import br.academia.util.Validador;

@SuppressWarnings("serial")
@Entity
@Table(name="movimentacao", schema="public")
public class Movimentacao extends PersistDB{
	@Id
	@Column(name="id_movimentacao")
	@SequenceGenerator(allocationSize=1, name = "SEQ_ID_MOVIMENTACAO", sequenceName = "public.seq_id_movimentacao")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_ID_MOVIMENTACAO")
	private int id;
	
	@Column(length=256)
	private String descricao;
	
	@Column
	private Boolean entrada;
	
	@Column
	private Float valor;
	
	@Column(name="data_faturamento")
	@Temporal(TemporalType.DATE)
	private Date dataFaturamento;

	public Movimentacao(){
		
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public Boolean getEntrada(){
		return entrada;
	}

	public void setEntrada(Boolean entrada) {
		this.entrada = entrada;
	}

	public Float getValor() {
		return valor;
	}

	public void setValor(Float valor) {
		this.valor = valor;
	}
	
	public Date getDataFaturamento() {
		return dataFaturamento;
	}
	
	public String getDataFaturamentoFormatada() {
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		
		if(Validador.isEmpty(dataFaturamento)){
			return "";
		}
		
		return sdf.format(dataFaturamento);
	}

	public void setDataFaturamento(Date dataFaturamento) {
		this.dataFaturamento = dataFaturamento;
	}
}
